#

| Chapter 1 Introduction |

## 1.24 The Superuser (Root)

In general, a process (38.1) is a program that's running: a shell, the ls command, the vi editor, and so on. In order to kill a process (38.10), change its priority (39.9), or manipulate it in any other way, you have to be the process' owner (i.e., the user who started it). In order to delete a job from a print queue (43.1), you must be the user who started it.

As you might guess, there needs to be a way to circumvent all of this security. Someone has to be able to kill runaway programs, modify the system's files, and so on. Under UNIX, a special user known as root (and commonly called the "superuser") is allowed to do anything.

On any system, the root user should always have a password. The system administrator should be very careful about giving out the superuser password and can't be blamed if he won't give the superuser password to anyone. Historically, UNIX systems have tended to be very lax: at many sites, all the users know the superuser password and don't hesitate to use it whenever they have the slightest problem.

Common as it may be, this is a very bad practice - systems where everyone knows the superuser password have no security whatsoever. People can read each other's mail, trample all over each other's files, scribble on disks by accident, or mail all of the company's proprietary documentation to a competitor (and delete the log files so there's no record that they did it). Worse, even if every user is an angel, being superuser makes it easy for someone to cause big problems accidentally - for instance, typing `rm *` in an important directory when you thought you were somewhere else. Wise system administrators don't use their superuser status except when they have to (22.22).

In this book, we'll assume that you don't have the superuser password. Almost all of what we describe can be done without becoming superuser.

- ML

1.23 File Access Permissions |  | 1.25 Access to Directories